【Git】cherry-pickで陥りやすいミス?複数取り入れが上手くいかない際の対処法

【Git】cherry-pickで陥りやすいミス?複数取り入れが上手くいかない際の対処法

Clock Icon2023.11.06

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、稲葉です。

今回は、git cherry-pick陥りやすいミスについて書きたいと思います。

この記事を書こうと思ったきっかけは、実際に自分が最近このコマンドでミスしたからです!

このミスは個人的に他の人も一度は陥ったことがあるのではないかと思っています。(ミスの内容については後ほど)

そのため、今回は再発防止の意味を込めて書きます。

git cherry-pickとは

はじめにgit cherry-pickコマンドについて、簡単に説明したいと思います。

このコマンドは、特定のコミットを指定して、現在のブランチに取り入れるコマンドです。

1つのコミットを取り入れる場合

git cherry-pick コミットID

複数のコミットを取り入れる場合

git cherry-pick AコミットID..BコミットID

陥りやすいミス

陥りやすいミス?は、複数のコミットを取り入れる際に使用するコマンドで陥りました。

実際に自分はAコミットからEコミットまでを取り入れたいという場面があり、以下のコマンドを使用しました。

git cherry-pick AコミットID..EコミットID

そうしたら、なんとコンフリクトが発生しました! AからEのコミットが取り入れられているはずなら、コンフリクトが起こることは無いはずなのに...

結論から言いますと、コンフリクトが起こった理由はAコミットが取り入れられていないからでした。

先ほどのコマンドの実際の動作は、Aを含まないEまでのコミットを取り入れるになります。なので、予想していた通りの動作になりませんでした。

どのようにすればAを含みEまでのコミットを取り入れるという動作になるのか?

先ほどのコマンドに^を付ければ解決です。

git cherry-pick AコミットID^..EコミットID

上記のコマンドならばAを含みEまでのコミットを取り入れるという動作になります。

まとめ

今回はgit cherry-pickコマンド陥りやすいミスについて書かせて頂きました。

知っていれば大したことは無いのですが、はじめてcherry-pickを使う人やGIt初心者の人は陥りやすいミスなんじゃ無いかと個人的に思いました。(私もミスしました)

今後もこういった、ちょっとした陥りやすいミス、またその解決方法などを書いていきたいと思います。

最後まで読んでくださりありがとうございました!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.